package com.gonsin.venus.meeting.interfaces;

import com.gonsin.base.GPageRequest;
import com.gonsin.base.GPageResult;
import com.gonsin.venus.meeting.bean.*;
import com.gonsin.venus.meeting.enums.TopicStatus;
import com.gonsin.venus.meeting.po.TopicPo;
import com.gonsin.venus.meeting.po.TopicSearchPo;

import java.util.List;

/**
 * 议题相关处理逻辑
 */
public interface ITopicService  {

    /**
     * 查询议题
     */
    GPageResult<TopicBean> searchTopic(TopicSearchPo searchPo, GPageRequest pageRequest);

    /**
     * 批量查询议题
     */
    List<TopicBean> batchGetTopic(List<String> topicKeys);

    /**
     * 查询一个议题
     */
    TopicBean getTopic(String topicKey);

    /**
     * 删除一个议题
     */
    void deleteTopic(String topicKey);

    /**
     * 批量删除议题信息
     *
     * @param searchPo   搜索条件
     * @return 结果
     */
    int batchDeleteTopic(TopicSearchPo searchPo);

    /**
     * 添加一个议题
     *
     * @return
     */
    TopicBean addTopic(TopicPo topicPo);

    /**
     * 修改一个议题
     *
     * @return
     */
    TopicBean updateTopic(String topicKey, TopicPo topicPo);
}
